using System;
using System.Collections.Generic;
using System.Text;

namespace Googleboys.Inventa.Concept
{
    public class Ort
    {
        private string _Bezeichnung;
        private string _Beschreibung;
        private string _Anschrift;
        private List<Exemplar> _PlatzierteGegenstaende;

        private Guid _pkID;

        public Ort()
        {
        	_Bezeichnung = String.Empty;
        	_Beschreibung = String.Empty;
        	_Anschrift = String.Empty;
        	_pkID = Guid.NewGuid();

            _PlatzierteGegenstaende = new List<Exemplar>();
        }

        public string Anschrift
        {
            get
            {
                return _Anschrift;
            }
            set
            {
                _Anschrift = value;
            }
        }

        public string Beschreibung
        {
            get
            {
                return _Beschreibung;
            }
            set
            {
                _Beschreibung = value;
            }
        }

        public string Bezeichnung
        {
            get
            {
                return _Bezeichnung;
            }
            set
            {
                _Bezeichnung = value;
            }
        }

        public Guid PkID
        {
            get { return _pkID; }
            set { _pkID = value; }
        }

		public ItemList<Exemplar> PlatzierteGegenstaende
		{
			get
			{
				ItemList<Exemplar> r = new ItemList<Exemplar>();

				foreach (Exemplar exemplar in _PlatzierteGegenstaende)
				{
					r.Add(exemplar);
				}

				return r;
			}
		}

        public Exemplar[] GetPlatzierteGegenstaende()
        {
            return _PlatzierteGegenstaende.ToArray();
        }
        public void ExemplarPlatzieren(Exemplar ex)
        {
            _PlatzierteGegenstaende.Add(ex);
        }

        public void ExemplarPlatzierungLoeschen(Exemplar ex)
        {
            _PlatzierteGegenstaende.Remove(ex);
        }

        public override string ToString()
        {
            return _Bezeichnung;
        }
    }
}
